private functionのtest
このページでは基本的にprivate functionのtestをするときのことについて書く(書きたい)mrsekut.icon
前提
以下の2つを区別してtestを書く
tests/のようなdirを作ってその中に書く
実装の詳細をtestしない
publicなもののみtestする
privateなものはtestしない
いくつかの方法
公開範囲をpackage内に制限すれば良い
(ここでいう「module」は、Goの用語では「pacakage」)
hoge.goに対して、hoge_test.goにするなどの命名規則がある
参考
すごいmrsekut.icon
PHPなのにDXが良い
private methodのtestに関しては2022年になっても結論が出ていない
様々な論者の主張
そもそもprivate methodを一切使用しない
これは論外mrsekut.icon
全てのprivate methodをtestする
private methodはtestしない
ものによってtestしたりしなかったりする
private methodをまとめて別classに分ける
private methodをtestしたくなるということは、そのclassが大きすぎるということを疑う
使用している言語のmoduleのサポートがしょぼいせいで選択肢が失せるのは問題mrsekut.icon
TypeScriptとかだと、どうしてもpublicにしないとtestできない
だから泣く泣く、以下のいずれかの選択を迫られる
privateなものはtestしない
testのためだけにpublicにする
この辺の議論と、「private なものをtestするべきかどうか」はごっちゃにすべきでないと思う
いまいち読む気がしない